<?php if (!defined("DB_PEREFIX")) exit;

global $SITE;

if (is_cached ("tags.php", 2)) $content = get_cached ('tags.php');
else {
	$content = build_tags_content ();
	cache_file ("tags.php", $content);
}

// Устанавдиваем данные для блока
$data = array( 
				'head' => $SITE['blocks']['cloud']['header'],
				'body' => $content
				);
	
	($align == "left") 
		? $CORE->blocks_left .= load_module_view('system', 'block',  $data , true)
		: $CORE->blocks_right .= load_module_view('system', 'block',  $data , true);

function build_tags_content () {
	global $db;
	
	$get_tags = $db->query ("SELECT art_tags FROM ".DB_PEREFIX."_articles ORDER BY art_id DESC LIMIT 0, 400");
	
	$count = $db->num_rows ($get_tags);
	
	$all_tags = "";
	
	// Ставим все теги нижним регистром через запятую
	while (list ($tags) = $db->fetch_row ($get_tags)) {
		if (trim ($tags) != "") {
			$tag = explode (",", $tags);
			for ($i=0; $i<count($tag); $i++) 
				$all_tags .= mb_strtolower (trim ($tag[$i]), mb_detect_encoding($tag[$i])).',';
		}
	}
	// Удаляем последнюю запятую
	if (substr($all_tags, mb_strlen($all_tags)-1) == ",") 
		$all_tags = substr($all_tags, 0, mb_strlen($all_tags)-1);
	
	// Разбиваем теги в массив
	$tags = 0;
	$tags = explode (",", $all_tags);
	$tag_count = array ();
	$tagname = array ();
	$unique_tags = array ();
	$count = count($tags);
	
	// Вручную вычисляем уникальные теги (чтобы не повторялись при выводе, array_unique () - не работает)
	for ($i=0; $i<$count; $i++) {
		$like = 0;
		for ($c=0; $c<count($unique_tags); $c++) if ($tags[$i] == $unique_tags[$c]) $like++;
		if ($like == 0) array_push ($unique_tags, $tags[$i]);
	}
	
	// Считаем количество входов уникального тега в массив со всеми тегами
	for ($i=0; $i<count($unique_tags);  $i++) {
		$tag = trim ($unique_tags[$i]);
		$tag_count[$i] = 0;
		for ($c=0; $c<$count; $c++) if ($tag == trim($tags[$c])) $tag_count[$i]++;
		// Записываем, чтобы вначале шло количество входов тега, а затем сам тег
		$tagname[$i] = $tag_count[$i].".".$tag;
	}
	// Сортируем по количеству входов
	sort ($tagname);
	// Переворачиваем
	$tagname = array_reverse ($tagname);
	$tags = array ();
	
	// Оставляем 70 самых популярных ткгов
	for ($i=0; $i<count($tagname); $i++) {
		array_push ($tags, $tagname[$i]);
		if ($i == 69) break;
	}
	
	// Выстраиваем таги так, чтобы сначала шло его имя, а затем кол-во входов
	$tagname = array ();
	for ($i=0; $i<count($tags); $i++) {
		$part = explode (".", $tags[$i]);
		array_push ($tagname, $part[1].".".$part[0]);
	}
	// Сортируем по имени
	sort ($tagname);
	
	// Разделяем теги и кол-ва их входов на два массива (для удобства)
	$tag_count = array ();
	$tag_name = array ();
	for ($i=0; $i<count($tagname); $i++) {
		$part = explode (".", $tagname[$i]);
		array_push ($tag_name, $part[0]);
		array_push ($tag_count, $part[1]);
	}
    
    $data_tags = array();
	// Выводим
	for ($i=0; $i<count($tagname); $i++) {
		$size = 31;
		// Сравниваем с кол-вом входов других тегов, если есть больше - уменьшаем значение размера
		for ($c=0; $c<count($tagname); $c++) if ($tag_count[$i] < $tag_count[$c]) $size -= 3;
		if ($size < 10) $size = 10;
        $data_tags[$i]['tag_name'] = $tag_name[$i];
        $data_tags[$i]['tag_size'] = $size;
	}
    
    $data = array('tags'=>$data_tags);
    return load_module_view('blog', 'tags',  $data, true);
}
/*
function str_to_lower ($str) {
	
    $large = "QWERTYUIOPASDFGHJKLZXCVBNMЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ";
	$small = "qwertyuiopasdfghjklzxcvbnmйцукенгшщзхъфывапролджэячсмитьбю";
    $larr = array ();
    $sarr = array ();
	
	for ($i=0; $i<strlen($large); $i++) { array_push ($larr, $large[$i]); array_push ($sarr, $small[$i]); }
    
    $str = str_replace ($larr, $sarr, $str);
    
    return $str;
    
}
*/
